package com.joysuch.wwyt.patrol.mapper;

import com.joysuch.wwyt.patrol.entity.PatrolCheckItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.joysuch.wwyt.patrol.entity.vo.CheckItemDetailVo;
import com.joysuch.wwyt.patrol.entity.vo.CheckItemVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author zr
 * @since 2022-02-28
 */
@Repository
public interface PatrolCheckItemMapper extends BaseMapper<PatrolCheckItem> {

    /**
     * 根据检查点id查看检查点下多少检查项目
     * @param checkPointId
     * @return
     */
    Long findCheckItemNumByPointId(Long checkPointId);

    /**
     *  根据检查点查看检查点下多少设备
     * @param checkPointId
     * @return
     */
    Long findEquipmentNumByPointId(Long checkPointId);

    /**
     * 根据检查点id查找检查项目列表
     * @param pointId
     * @return
     */
    List<CheckItemVo> getCheckItemByPointId(Long pointId);

    /**
     * 查出检查点下的设备列表
     * @param pointId
     * @return
     */
    List<CheckItemVo> getdeviceByPointId(Long pointId);

    /**
     * 根据检查点id和设备id查出检查项目,不查数据类型等选项
     * @param pointId
     * @param deviceId
     * @return
     */
    List<CheckItemDetailVo> getCheckItemByPointIdAndDeviceId(Long pointId, Long deviceId);

    void delByIds(@Param("delItemIds") List<Long> delItemIds);

    void delByDeviceIdsAndPointId(@Param("delDeviceIds") List<Long> delDeviceIds, @Param("pointId") Long pointId);

    /**
     *   根据数据类型id查出哪些检查点使用了该数据类型
     * @param dataTypeId
     * @param tenentId
     * @param orgCode
     * @return
     */
    List<String> findByDataTypeId(Long dataTypeId, Long tenentId, String orgCode);

    List<String> getPointByOptionId(Long optionId);

    /**
     * 根据数据类型id查看多少检查项目(检查点正在使用)
     * @param dataTypeId
     * @return
     */
    List<String> getPointByTypeId(Long dataTypeId, Long tenentId, String orgCode);

    List<CheckItemDetailVo> getByPointId(Long pointId);

    List<CheckItemDetailVo> getDefObjByPointId(Long pointId);


}
